<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  <script>
    // Array.push() ，              
    /*
      特点:
         1.在数组的尾部追加一个成员
         2.会改变原数组
    */ 
    var arr=['张三','李四','王五']
    arr.push('老六')
    console.log(arr);


    // Array.shift() ,
    /*
      特点:
         1.删除数组的第一个成员
         2.返回被删除的成员
         3.会改变原数组
    */ 
    var arr1=[1,2,8,6,4,6,3];
    var first=arr1.shift()
    console.log(first);
    console.log(arr1);

    // Array.reverse() 
    /*
      特点:
          1.用于数组反转
          2.会破坏原数组
    */
    var arr2=[1,2,3,4,5,6]
    console.log(arr2);
    arr2.reverse()
    console.log(arr2);



    /* Array.sort(function(a,b){
      return a-b
    })      
          用于数组的排序
          特点：
            1.会改变原数组
            2.return的值大于0,返回结果为升序
            3.return的值小于0,返回的结果为降序
            4.return的值为0，返回结果不排序
    */

    // return的值大于0,返回结果为升序
    var arr3=[4,9,8,6,7,5,3,66,45]
    arr3.sort(function(a,b){
      return (a-b) * 1
    })
    console.log(arr3);


    // return的值小于0,返回的结果为降序
    arr3.sort(function(a,b){
      return (a-b) * -1
    })
    console.log(arr3);


    // return的值为0，返回结果不排序
    var arr4=[1,5,6,7,5,6]
    arr4.sort(function(a,b){
      return (a-b) * 0
    })
    console.log(arr4);



    // Array.slice()   ,
    
    /*
          特点:
                 1.按照索引值截取数组
                 2.注意：截取的成员，包含start位置的，不包含end位置
                 3.不会改变原数组，返回一个新数组
    */
    //       array.slice(start,end) 
    //          start和end支持负数,最后一个成员的索引值为-1
    //          如果end没有传参则默认是到数组最后一个成员

    var arr=['苹果','香蕉','菠萝','桔子']
    // 1.指定索引值
    console.log(arr.slice(0,2));
    console.log(arr);

    // 2.始终取除了第一个成员之外的数组成员
    console.log(arr.slice(1));

    // 如果slice只有一个参数，则表示从当前索引值截取到末尾
    console.log(arr.slice(2));

    // 3.取出第一个和最后一个以外的数组成员
    console.log(arr.slice(1,-1));


    // 4. 取得倒数的数组成员
    console.log(arr.slice(-4,-1));

    // 5. 清空数组
    console.log(arr.slice(0,0));









    // Array.filter()  筛选符合条件的数据
    /*
      fruit.filter(function(item,index,arr){
            1.item为数组成员
            2.index为成员的索引值
            3.arr 为原数组


            return  (筛选的条件)
        })
          特点：
            1.不会改变原数组，返回新数组
    */

    var fruit=[
        {id:1,name:'哈密瓜',price:5},
        {id:2,name:'榴莲',price:20},
        {id:3,name:'西瓜',price:2},
        {id:4,name:'草莓',price:4},
        {id:5,name:'芒果',price:5},
    ]

    var result=fruit.filter(function(item,index,arr){
      // 筛选单价>=5的记录
      return item.price>=5
    })
    console.log(result);


    var result=fruit.filter(function(item){
      // 筛选水果名称包含'瓜'的记录
      return (item.name).includes('瓜')
    })
    console.log(result);


    // 多条件筛选
    var result = fruit.filter(function(item){
      return (item.name).includes('瓜') && item.price>=5
    })
    console.log(result);
  </script>
</body>
</html>